# import open3d as o3d
#
# '''使用统计滤波进行过滤'''
# pcd = o3d.io.read_point_cloud("data/0828.pcd")
#
# # 应用统计滤波器
# # 参数解释：
# # nb_neighbors：每个点的邻居数，即考虑多少个最近邻点来计算统计信息。通常选择一个适中的值，比如20到50。
# # std_ratio：标准差倍数，用于确定噪声的阈值。标准差倍数越大，越严格，默认值通常在1.0到2.0之间。
# cl, ind = pcd.remove_statistical_outlier(nb_neighbors=600, std_ratio=2.0)
#
# # 获取过滤后的点云
# pcd_clean = pcd.select_by_index(ind)
#
# # 保存处理后的点云
# o3d.io.write_point_cloud("08021.pcd", pcd_clean)
import open3d as o3d

# 读取点云
pcd = o3d.io.read_point_cloud("data/0828.pcd")

# 应用半径滤波器
# 参数解释：
# nb_points：指定每个点在指定半径内必须拥有的最少邻居点数目，少于该值的点会被认为是离群点。
# radius：指定搜索邻域的半径。该值需要根据点云的密度进行调整。
cl, ind = pcd.remove_radius_outlier(nb_points=16, radius=0.5)

# 获取过滤后的点云
pcd_clean = pcd.select_by_index(ind)

# 保存处理后的点云
o3d.io.write_point_cloud("08021.pcd", pcd_clean)
